Today, relatively large integrated circuit (IC) designs are common as exemplified by the expanding growth of System on Chip (SOC) designs. In-circuit memory elements, e.g. memory devices, are prevalent in such designs. Memory configurations in an electronic circuit may vary from a limited number of large-sized memory elements to numerous small-sized memory elements. In an emulation of an electronic circuit design, emulating in-circuit memory elements may present challenges to an engineer. For example, an emulation system, which provides reconfigurable logic resources and memory resources to emulate the electronic circuit, may have a relatively small number of emulation ICs. Moreover, an emulation IC has limited memory resources. A memory resource may support the emulation of a plurality of memory elements of the electronic circuit. Thus, the emulation system may support the emulation of a number of memory elements with a smaller number of memory resources. Consequently, different memory elements may compete for a same memory resource during an emulation cycle.
Multiple timing domains in the electronic circuit design may further exacerbate associated problems when emulating multiple memory elements in a single emulation memory. For example, in an electronic circuit design, a first in-circuit memory element may reside in a first logic block that operates under a first timing domain. A second in-circuit memory element may reside in a second logic block that operates under a second timing domain. It is possible to have a single emulation memory resource service access requests for both memory elements during an emulation cycle of the electronic circuit. However, an access request from the second logic block (associated with the second timing domain) may arrive asynchronously with respect to a clock signal of the first timing domain (associated with the first logic block.)
The market trend in the semiconductor industry is for integrated circuits to become larger and more complex. Thus, there is a real market need to facilitate an emulation of an electronic circuit that may have an inordinate degree of memory complexity while the emulation system may have limited memory resources.